#!/bin/bash
# 默认值
SRS_DIR="/home/lower/Download/srs/trunk"
SRS_CMD="./objs/srs -c conf/srs.conf"
APP_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
APP_CMD="bin/videoFlow src/config.json"

# 显示帮助信息
usage() {
    echo "用法: $0 [选项]"
    echo "选项:"
    echo "  --srs-dir DIR     设置SRS目录 (默认: $SRS_DIR)"
    echo "  --srs-cmd CMD     设置SRS命令 (默认: $SRS_CMD)"
    echo "  --app-dir DIR     设置APP目录 (默认: 脚本目录)"
    echo "  --app-cmd CMD     设置APP命令 (默认: $APP_CMD)"
    echo "  -h, --help       显示此帮助信息"
    exit 1
}

# 解析命令行参数
while [[ $# -gt 0 ]]; do
    case $1 in
        --srs-dir)
            SRS_DIR="$2"
            shift 2
            ;;
        --srs-cmd)
            SRS_CMD="$2"
            shift 2
            ;;
        --app-dir)
            APP_DIR="$2"
            shift 2
            ;;
        --app-cmd)
            APP_CMD="$2"
            shift 2
            ;;
        -h|--help)
            usage
            ;;
        *)
            echo "未知选项: $1"
            usage
            ;;
    esac
done

# 执行主流程
if pushd "$SRS_DIR" >/dev/null 2>&1; then
    echo "正在SRS目录执行: $SRS_CMD"
    eval "$SRS_CMD"
    SRS_EXIT_CODE=$?
    echo "SRS程序执行完毕，退出码: $SRS_EXIT_CODE"
    popd >/dev/null 2>&1
    
    if pushd "$APP_DIR" >/dev/null 2>&1; then
        echo "正在APP目录执行: $APP_CMD"
        eval "$APP_CMD"
        APP_EXIT_CODE=$?
        echo "APP程序执行完毕，退出码: $APP_EXIT_CODE"
        popd >/dev/null 2>&1
    else
        echo "错误: 无法跳转到APP目录: $APP_DIR" >&2
        exit 1
    fi
else
    echo "错误: 无法跳转到SRS目录: $SRS_DIR" >&2
    exit 1
fi

echo "所有任务执行完成！"
